package com.shiqi.bio.version2;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * @author shiqi
 * @version 1.0.0
 * @ClassName ServerDemo.java
 * @Description 服务端
 * @createTime 2022-05-13
 */
public class ServerDemo {

    public static void main(String[] args) throws IOException {
        System.out.println("=========服务端启动==========");
        // 注册端口
        ServerSocket serverSocket = new ServerSocket(8888);
        // 开始在这里暂停等待接收客户端的连接,得到一个端到端的Socket管道
        Socket accept = serverSocket.accept();
        // 从Socket管道中得到一个字节输入流。
        InputStream inputStream = accept.getInputStream();
        // 把字节输入流包装成自己需要的流进行数据的读取。
        // InputStreamReader 把字节流转成字符流，把字符流包装为BufferedReader
        BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
        // 读取数据
        String line;
        // 这样处理只是不读取下一行输入了，不会等待，直接结束 没有异常抛出
        while ((line = br.readLine()) != null) {
            System.out.println("服务端收到：" + line);
        }
    }
}
